package com.binhthuan.catechist.client;

import com.binhthuan.catechist.shared.session.UserSession;

/**
 * @author Giang Đinh - Lớp chứa thông tin của người đang sử dụng chương trình.
 **/
public class ECUser {

    private static UserSession currentUser = null;
    
    /**
     * Gán thông tin của người dùng hiện tại.
     * @param user
     */
    public static void setCurrentUser(UserSession user) {
        currentUser = user; 
    }
    
    /**
     * Lấy thông tin của người dùng hiện tại. 
     */
    public static UserSession getCurrentUser() {
        return currentUser;
    }
    
    /**
     * Xoá thông tin của người dủng hiện tại.
     */
    public static void clear() {
        currentUser = null;
    }
    
    /**
     * @return the sessionId
     */
    public static String getSessionId() {
        return currentUser.getSessionId();
    }

    /**
     * @param sessionId the sessionId to set
     */
    public static void setSessionId(String sessionId) {
        currentUser.setSessionId(sessionId);
    }

    /**
     * @return the id
     */
    public static Integer getId() {
        return currentUser.getId();
    }

    /**
     * @param id
     *            the id to set
     */
    public static void setId(Integer id) {
        currentUser.setId(id);
    }

    /**
     * @return the username
     */
    public static String getUsername() {
        return currentUser.getUsername();
    }

    /**
     * @param username
     *            the username to set
     */
    public static void setUsername(String username) {
        currentUser.setUsername(username);
    }

    /**
     * @return the lastLoginDate
     */
    public static String getLastLoginDate() {
        return currentUser.getLastLoginDate();
    }

    /**
     * @param lastLoginDate
     *            the lastLoginDate to set
     */
    public static void setLastLoginDate(String lastLoginDate) {
        currentUser.setLastLoginDate(lastLoginDate);
    }

    /**
     * @return the lastLoginIP
     */
    public static String getLastLoginIP() {
        return currentUser.getLastLoginIP();
    }

    /**
     * @param lastLoginIP
     *            the lastLoginIP to set
     */
    public static void setLastLoginIP(String lastLoginIP) {
        currentUser.setLastLoginIP(lastLoginIP);
    }

    /**
     * @return the locked
     */
    public static Boolean getLocked() {
        return currentUser.getLocked();
    }

    /**
     * @param locked
     *            the locked to set
     */
    public static void setLocked(Boolean locked) {
        currentUser.setLocked(locked);
    }

    /**
     * Lấy tên của người dùng.
     * @return Tên của người dùng.
     */
    public static String getFirstName() {
        return currentUser.getFirstName();
    }

    /**
     * Gán tên của người dùng.
     * @param firstName
     *            Tên của người dùng.
     */
    public static void setFirstName(String firstName) {
        currentUser.setFirstName(firstName);
    }

    /**
     * Lấy hình đại diện của người dùng.
     * @return Hình đại diện của người dùng.
     */
    public static String getAvartar() {
        return currentUser.getAvartar();
    }

    /**
     * Gán hình đại diện của người dùng.
     * @param avartar
     *            Hình đại diện của người dùng.
     */
    public static void setAvartar(String avartar) {
        currentUser.setAvartar(avartar);
    }

    /**
     * @return the securityCode
     */
    public static long getSecurityCode() {
        return currentUser.getSecurityCode();
    }

    /**
     * @param securityCode
     *            the securityCode to set
     */
    public static void setSecurityCode(long securityCode) {
        currentUser.setSecurityCode(securityCode);
    }

    /**
     * Lấy mã lớp mà người dùng phụ trách.
     * @return Mã lớp mà người dùng phụ trách.
     */
    public static Integer getCurrentCourse() {
        return currentUser.getCurrentCourseId();
    }

    /**
     * Gán mã lớp mà người dùng phụ trách.
     * @param currentCourse Mã lớp mà người dùng phụ trách.
     */
    public static void setCurrentCourse(Integer currentCourse) {
        currentUser.setCurrentCourseId(currentCourse);
    }

    /**
     * Lấy họ và chữ lót của người dùng.
     * @return Họ và chữ lót của người dùng.
     */
    public static String getLastName() {
        return currentUser.getLastName();
    }

    /**
     * Gán họ và chữ lót của người dùng.
     * @param lastName Họ và chữ lót của người dùng.
     */
    public static void setLastName(String lastName) {
        currentUser.setLastName(lastName);
    }

    /**
     * Lấy tên thánh của người dùng.
     * @return Tên thánh của người dùng.
     */
    public static String getPatronSaint() {
        return currentUser.getPatronSaint();
    }

    /**
     * Gán tên thánh của người dùng.
     * @param patronSaint Tên thánh của người dùng. 
     */
    public static void setPatronSaint(String patronSaint) {
        currentUser.setPatronSaint(patronSaint);
    }

    /**
     * Lấy năm học hiện tại.
     * @return Mã của năm học hiện tại.
     */
    public static Integer getSchoolYear() {
        return currentUser.getYearId();
    }

    /**
     * Gán mã của năm học hiện tại.
     * @param yearId Mã của năm học hiện tại.
     */
    public static void setSchoolYear(Integer yearId) {
        currentUser.setYearId(yearId);
    }
 }
